package com.suntianci.stock.pojo.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import java.util.Date;

/**
 * @ClassName UserInfoDomain
 * @Author 孙天赐
 * @Date 2025/1/10 10:11
 * @Description TODO: 用户信息
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel(description = "用户信息")
public class UserInfoDomain {

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String username;

    /**
     * 密码密文
     */
    @ApiModelProperty(value = "密码密文")
    private String password;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码")
    private String phone;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    private String realName;

    /**
     * 昵称
     */
    @ApiModelProperty(value = "昵称")
    private String nickName;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;

    /**
     * 状态（1.正常 2.锁定）
     */
    @ApiModelProperty(value = "状态（1.正常 2.锁定）")
    private Integer status;

    /**
     * 性别（1.男 2.女）
     */
    @ApiModelProperty(value = "性别（1.男 2.女）")
    private Integer sex;

    /**
     * 是否删除（1.未删除 0.已删除）
     */
    @ApiModelProperty(value = "是否删除（1.未删除 0.已删除）")
    private Integer deleted;

    /**
     * 创建人id
     */
    @ApiModelProperty(value = "创建人id")
    private Long createId;

    /**
     * 修改人id
     */
    @ApiModelProperty(value = "修改人id")
    private Long updateId;

    /**
     * 创建来源（1.web 2.android 3.ios）
     */
    @ApiModelProperty(value = "创建来源（1.web 2.android 3.ios）")
    private Integer createWhere;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date createTime;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date updateTime;

    /**
     * 创建人账户
     */
    @ApiModelProperty(value = "创建人账户")
    private String createUserName;

    /**
     * 修改人账户
     */
    @ApiModelProperty(value = "修改人账户")
    private String updateUserName;
}
